15-4 炾僂しP僂

每一個函式在運算時,均佔用個別的一塊記憶體,此工作空間和 MATLAB 的基本工作空間或是其他函式的工作空間是互相獨立的,因此不同空間的變數是完全獨立,不會相互影響。這些在不同工作空間的變數,稱為「區域變數」(Local Variables)。一般而言,使用區域變數已能滿足一般程式設計的需求,但有時候為了減少變數的傳遞,我們可用「全域變數」(Global Variables),在使用全域變數之前,我們必需先進行變數宣告,其格式如下:

global variable1 variable2 ...
例如:我們在函式 func6.m 宣告了一個全域變數 X,並印出其值,Func6.m 的內容如下: >> type func6.m function func6 global X % 全域變數宣告 X = X + 2; fprintf('The value of X in "func6" is %g.\n', X);

此函式沒有輸出和輸入,他只是宣告全域變數 X,將 X 的值加 2,並印出其值。欲測試此函式,可輸入如下:

>> global X % 在基本工作空間進行全域變數 x 的宣告 >> X = 2; >> fprintf('The value of X in the base workspace is %g.\n', X); The value of X in the base workspace is 2. >> func6; The value of X in "func6" is 4. >> fprintf('The value of X in the base workspace is %g.\n', X); The value of X in the base workspace is 4.

由此可知,一旦 X 被宣告為全域變數後,就可以在不同的空間中,存取或改變同一個全域變數 X 的值。

必需注意的是:請盡量少用全域變數!全域變數會使程式的流程較不透明,造成程式除錯或維護的困難。若您一定要用全域變數,請遵循下列兩原則:

另外,在檢視工作空間的變數時,需輸入 whos global,才能顯示全域變數,例如:

>> whos global Name Size Bytes Class X 1x1 8 double array (global) Grand total is 1 elements using 8 bytes

在清除變數時,clear X 只會清除在目前工作空間的全域變數 X,若要清除所有工作空間的全域變數 X,則必需使用 clear global X。


MATLAB程式設計:入門篇